Technical Q&A QA1267
Importer Components - What is the 'mcfg' resource used for?


Q: 現在、Movie Import コンポーネントを記述しています。'mcfg' リソースの用途を教えてください。

A: QuickTime Media Configuration の 'mcfg' リソース (kQTMediaConfigResourceType) は、QuickTime Importer Component によってサポートされているファイルタイプの特性をリストしたものです。このリソースは、QuickTime の MIME 設定のコントロールパネルで、ユーザインタフェースのビルドと設定を行うために使用されます(図 1 参照)。また、QuickTime プラグインでも、QuickTime プラグインが登録する MIME タイプのリストを作成したり、ファイルを開いて読み込む方法を解決する目的で使用されます。

QuickTime MIME Configuration

図 1. QuickTime MIME 設定のコントロールパネル


QuickTime for Windows の将来のバージョンでは、'mcfg' リソースは、Windows のファイルタイプ登録メカニズムとコントロールパネルで使用されます。

'mcfg' リソース内に含まれる情報の一部は Importer Component のほかの部分でも利用できますが、そのすべてを利用できるわけではなく、またすべてを一箇所で利用できるわけではありません。その良い例は、グループ ID、プラグイン、アプリケーションフラグなどの情報です。

すべての Movie Importer コンポーネント('eat ')と Graphics Importer コンポーネント('grip')には、必ずこのリソースが 1 つあります。例として、Movie Importer 用の 'mcfg' リソースをリスト 1 に示します。

リスト 1Electric Image Movie Importer 用 'mcfg' リソース

resource 'mcfg' (512)
{
 kVersionDoesntMatter, // リソースの適用対象コンポーネントのバージョン
 {
  // このタイプが属しているグループの ID(OSType、
  // kQTMediaConfigStreamGroupID など)
  // このフラグにより、MIME 設定のコントロールパネルで
  // この MIME タイプがリストされるグループが決定される
  kQTMediaConfigVideoGroupID.

  // MIME 設定グフラグ(符号なし long、1 つ以上の
  // kQTMediaConfigCanUseApp、など)
  kQTMediaConfigUseAppByDefault  // デフォルトでは、QuickTime プラグイン
                                 // の代わりに下に指定された
                                 // アプリケーションと関連付ける
   | kQTMediaConfigCanUseApp     // このタイプを、アプリケーションと
                                 // 関連付けることができる
   | kQTMediaConfigCanUsePlugin  // このタイプを、QuickTime プラグインと
                                 // 結びつけることができる
   | kQTMediaConfigBinaryFile,   // ファイルはテキストではなく
                                 // バイナリ

  'EIDI',        // 保存時の MacOS ファイルタイプ(OSType)
  'TVOD',        // 保存時の MacOS ファイルタイプクリエータ(OSType)

  // QuickTime プラグインがこのタイプのファイルを開く
  // コンポーネントを見つけるために使用するコンポーネント情報
  'eat ',        // コンポーネントタイプ(OSType)
  'EIDI',        // コンポーネントサブタイプ(OSType)
  'vide',        // コンポーネントのメーカー (OSType)
  kEI_MovieImportFlags,    // コンポーネントフラグ
  0,             // フラグマスク

  'EIM ',        // デフォルトのファイル拡張子(OSType)。必ず大文字にする
                 // これは、大文字/小文字を区別せずに
                 // 拡張子 ".eim" と一致する。
  kQTMediaInfoNetGroup,    // QuickTime ファイルタイプグループ
                           // (OSType、kQTMediaInfoNetGroup の 1 つなど)

  // メディアタイプのシノニム、0 またはそれ以上の
  // Pascal 文字列の配列 - ここではなし
  {
  },

  {
   "Electric Image file",    // MIME 設定パネルとブラウザ用の
                                       // メディアタイプの記述
   "eim",                    // ファイル拡張子、複数の場合は
                                       // カンマで区切る
   "QuickTime Player",       // MIME 設定パネルおよびブラウザ用の
                                       // 開始時のアプリケーション名
   "Electric Image Movie Importer", // 検出できないソフトウェア
                                              // のダイアログ用の検出でき
                                              // ないソフトウェアの記述
   "Version 1.3",            // ベンダー情報文字列
                                       // (著作権、バージョン、など)
  },

  // このメディアタイプを記述する 1 つ以上の MIME タイプの
  // 配列(たとえば、audio/mpeg、audio/x-mpeg、など)
  {
   "video/electric-image",
   "video/x-electric-image",
  },
 }
};

kQTMediaConfigCanUseApp フラグと kQTMediaConfigCanUsePlugin フラグのどちらかまたは両方が設定されている場合は、MIME 設定のコントロールパネルには MIME タイプが自動的に表示され、ユーザは必要に応じて、QuickTime でのファイルの処理方法を選ぶことができます。

kQTMediaConfigUsePluginByDefault フラグが設定されている場合、QuickTime は、両方のプラットフォーム上のすべてのブラウザの QuickTime プラグイン用に MIME タイプを自動的に登録します。

'mcfg' リソースを Importer コンポーネントに追加するときには、必ずこのリソースを(リスト 2 に示すような)コンポーネントの共有リソースリストに追加してください。

リスト 2 Electric Image Movie Importer の 'thnr' リソース

// コンポーネントの共有リソース
resource 'thnr' (512) {
 {
  'mime', 1, 0,
  'mime', 512, 0,

  'mcfg', 1, 0,
  'mcfg', 512, 0
  }
};


参考文献


[2003 年 5 月 12 日]